1. Field of the Invention
This invention relates to the field of testing bitstream devices, and in particular to a system for efficiently creating data streams which can be used for device testing.
2. Description of the Related Art
Electronic systems which perform data stream processing are being developed for many applications including video and audio compression such as MPEG, JPEG, and AC3, high-speed interconnection such as Fibre Channel and 1394, and digital communication such as wireless, Ethernet, V34 modems and ATM. By necessity, the development of systems for these applications includes testing and verification of system designs, and in particular, testing and verification of the system's implementation of the data stream syntax.
Data stream processing systems convert a stream of data to or from a structured sequence of data having a syntax. The syntax causes the portions of the data stream to assume meaning, i.e. the structured sequence cannot be treated as a stream of random data. Rather, the syntax is expected to be present, and structured data sequences must be used to test that data stream processing systems properly implement their functions.
A testing approach used in the past relies on a library of sample sequences which are constructed to test specific syntax rules, specific combinations of syntax rules, or performance on "typical" sequences. This approach has the drawback of requiring an enormous amount of storage space in order to provide a moderate amount of test coverage in today's increasingly sophisticated encoding and decoding algorithms. Furthermore, these libraries are difficult to produce and difficult to modify when syntax rules change. Also, simply combining libraries to test a device which incorporates multiple syntax sets does not provide adequate or efficient test coverage.
The importance of finding an efficient, user-friendly method of generating structured sequences cannot be overstated for testing compliance to standards such as DVD which provide for an extreme degree of flexibility. Functionality verification requires a wide variety of sequences be generated and applied to a device, and a way to manage and track the resulting overabundance of data streams is needed. For complete verification, it is often necessary to change a single bit in a single field in a two-hour (&gt;2 GB!) data stream. Clearly an efficient method for specifying the content of data streams is needed.
In addition to compressed audio and video substreams, the DVD standard provides for a "navigation" substream which specifies ways in which a DVD system user can interact with the entertainment program. In many respects, the structure of the navigation substream resembles a software program for specifying a user interface. Verifying the functionality of a DVD system which implements the navigation substream requires the ability to efficiently generate a huge number of navigation substreams.